@mixin selectable($val)
    $cfg: if($val, text, none)
    -moz-user-select: $cfg
    -webkit-user-select: $cfg
    user-select: $cfg

@mixin transition($t...)
    -moz-transition: $t
    -webkit-transition: $t
    -o-transition: $t
    transition: $t

@mixin font($T ...)
    $map: ("italic": "style")
    @each $t in $T
        @if type-of($t) == "number"
            font-size: $t
        @else if type-of($t) == "color"
            color: $t
        @else if str-slice($t, 1, 6) == "--text"
            color: var($t)
        @else if map-get($map, $t) == "style"
            font-style: $t
        @else
            font-weight: $t

@mixin border($T: "", $__t: 1px solid var(--bg-border))
    @if $T == "" or $T == "all"
        border: $__t
    @else
        @each $__key, $__index in $border-filters
            @if (str-index($T, $__key) != null)
                #{$__index}: $__t

@mixin radius($T: "", $__t: var(--border-radius))
    @if $T == "" or $T == "all"
        border-radius: $__t
    @else
        @each $__key, $__index in $radius-filters
            @if (str-index($T, $__key) != null)
                #{$__index}: $__t

@mixin size($w, $h: none)
    @if $h == none
        $h: $w
    width: $w
    height: $h

@mixin HiDPI
    will-change: transform

@mixin hideScrollBar
    &::-webkit-scrollbar
        height: 0
        width: 0

@mixin trim
    > :first-child
        margin-top: 0
        > :first-child
            margin-top: 0
            > :first-child
                margin-top: 0
                > :first-child
                    margin-top: 0
    > :last-child
        margin-bottom: 0
        > :last-child
            margin-bottom: 0
            > :last-child
                margin-bottom: 0
                > :last-child
                    margin-bottom: 0